package com.zenithmind.gateway.route;

import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder.Builder;

/**
 * 路由配置器接口
 * 遵循接口隔离原则：每个路由配置器只需要实现自己关心的配置方法
 * 遵循开闭原则：新增路由配置器无需修改现有代码
 */
public interface RouteConfigurer {
    
    /**
     * 配置路由
     * @param routes 路由构建器
     */
    void configureRoutes(Builder routes);
    
    /**
     * 获取配置器名称
     * @return 配置器名称
     */
    String getConfigureName();
    
    /**
     * 获取配置器优先级，数字越小优先级越高
     * @return 优先级
     */
    default int getOrder() {
        return 0;
    }
}
